package com.dianzhihan.http4;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

@Controller
public class UploadController {
    @PostMapping("/upload.do")
    @ResponseBody
    public String upload(MultipartFile ccc) throws Exception {
        System.out.println(ccc.getName());              // 打印了名称，应该是 ccc
        System.out.println(ccc.getOriginalFilename());  // 原始文件名：main.c
        System.out.println(ccc.getContentType());       // text/plain

        ccc.transferTo(new File("F:\\测试\\4.txt"));   // SpringMVC 内部处理这些循环细节去了

//        InputStream is = ccc.getInputStream();
//        try (OutputStream os = new FileOutputStream("D:\\课程\\2022-08-17-2022火箭班-HTTP\\target.txt")) {
//            // 进行文件复制类似的操作：从 is 接一桶水，倒到 os，持续循环，知道 is 中的水全部接完
//            byte[] buf = new byte[1024];    // 定义桶，最多装 1024 水
//            while (true) {
//                int n = is.read(buf);
//                if (n == -1) {
//                    // is 中的水全部接完了
//                    break;
//                }
//
//                // 否则，将水倒入 os 中
//                os.write(buf, 0, n);
//            }
//
//            // os 必须 flush
//            os.flush();
//        }
//        is.close();

        return "OK";
    }
}
